Volume Profile Matrix [LuxAlgo]The Volume Profile Matrix indicator extends from regular volume profiles by also considering calculation intervals within the calculation window rather than only dividing the calculation window in rows.
Note that this indicator is subject to repainting & back-painting, however, treating the indicator as a tool for identifying frequent points of interest can still be very useful.
🔶 SETTINGS
Lookback: Number of most recent bars used to calculate the indicator.
Columns: Number of columns (intervals) used to calculate the volume profile matrix.
Rows: Number of rows (intervals) used to calculate the volume profile matrix.
🔶 USAGE
The Volume Profile Matrix indicator can be used to obtain more information regarding liquidity on specific time intervals. Instead of simply dividing the calculation window into equidistant rows, the calculation is done through a grid.
Grid cells with trading activity occurring inside them are colored. More activity is highlighted through a gradient and by default, cells with a color that are closer to red indicate that more trading activity took place within that cell. The cell with the highest amount of trading activity is always highlighted in yellow.
Each interval (column) includes a point of control which highlights an estimate of the price level with the highest traded volume on that interval. The level with the highest traded volume of the overall grid is extended to the most recent bar.
Tìm kiếm tập lệnh với "point of control"
Volume Profile Fixed Range Support and Resistance LevelsThis script is based on the excellent Volume Profile / Fixed Range indicator by @LonesomeTheBlue, so all credit for the foundations of this indicator goes to @LonesomeTheBlue
I basically made 5 instances of the original script and added horizontal lines at the beginning and end of the each Value Area. To use the script as a support and resistance tool without the Value Areas and Point of Control (POC) labels you just need to untick "Boxes" and "Labels" in the "Style" section of the “Settings”.
The default look-back periods (in bars) are 7, 30, 60, 180 and 365, but you can change this or the colour of the lines easily in the “Settings”.
The dashed lines are the respective POC.
I find this tool to be very useful for quickly identifying interest levels on any chart while also ensuring a certain amount of objectivity in your TA.
Hope you find it useful and thanks again to @LonesomeTheBlue for going through the trouble of coding this and being so generous to share it with the rest of us!
Good luck out there!
Volume and vPOC InsightsThe vPOC or volume point of control shows where most of the volume was traded. This is important because this is where the institutions and market makers have opened their positions, and these are the ones that move the markets!
This indicator is designed to cut through the volume noise, and enable the hiding of lower volume data.
The main setting allows you to define a lookback, and obscure the candles whose volume is less than x % of the highest volume in this lookback.
Of the remaining candles, their vPOC will be displayed. There are extra settings to extend naked vPOCs, as well as the highs and lows of these high volume candles, plus an EMA based on the vPOC price levels.
I must credit quantifytools @quantifytools who allowed me to utilize his code, for finding vPOCs using lower timeframe candles - there are comments in the code also. It works perfectly so why reinvent the wheel?
RS: Market ProfileA Market Profile (time price opportunity) implementation with an option to mark a point of control (POC) based on volume.
Config: Hide default candles. Select a session time using exchange timezone. Experiment with tick multiplier value to achieve desired level of detail. Choose the symbols of your choice, e.g. squares or A-Z chars. For multiple sessions you will have to add additional instances of this script with a different time configuration.
Limitations: TradingView has a hard limit for the number of characters (500), if it's reached, label rendering stops. Try increasing tick multiplier value to reduce the number of labels rendered or reduce the window size.
Features:
Use symbols or A-Z chars for TPOs
Mark POC
Calculate Value Area (volume or time based)
Highlight single prints (SP)
Highlight VWAP
Show daily bar
Highlight Open and Close
Highlight current price row (during live market)
Highlight initial balance (IB)
Volume profile zonesHi all!
This script calculates and shows the volume profile for the range of a higher timeframe candle. It then shows support or resistance (/supply or demand) zones based on the volume profiles with the most volume. The defaults are just my preferred settings so feel free to play with them! Also feel free to let me know about bugs and features. I already have a list of features to make, e.g.:
base on pivots
more info zone calculations, e.g. breaks and retests, virgin point of control etc.
add alerts
get rid of getPriceLevels()
get rid of _barVolumeProfile prefix
handle realtime
...
Best of trading luck!
[Pt] Periodic Volume ProfileThis script is an attempt to recreate the Periodic Volume Profile that is built-in by TradingView, with slightly different features. Related blog: www.tradingview.com
This script is based on another script "Volume Profile, Pivot Anchored" by @dgtrd
*Note that only limited number Volume Profile can be displayed on the chart due to limitations on displaying boxes and lines.
Description
This Periodic Volume Profile (PVP) indicator allows trades to view volume profiles for periods longer than the current timeframe. The indicator builds one general volume profile for each new period, set by the user through the “Periodic Timeframe” input parameter.
This script also has the option to extend Point of Control (POC) lines with optional end conditions: Until Bar Touch, Until Last Bar, Until Bar Cross, or None, which extends to the right.
Signals are generated for Naked POC touches and crosses by a triangle symbol and a cross symbol, by default.
Alerts are available for POC touches and crosses.
What is Volume Profile?
Volume profile is a technical analysis tool that shows the volume of trades at different prices for a given security or market over a specific period of time.
Volume profile can be used to identify key levels of support and resistance, as well as to assess the overall supply and demand for a security. For example, if there is a high volume of trades at a particular price level, this may indicate that there is a significant level of support or resistance at that price. On the other hand, if there is relatively low volume at a particular price, this may indicate that there is not much interest in trading at that level.
Traders can use volume profile to identify trends, make trading decisions, and set stop-loss and take-profit orders. It can also be useful for identifying patterns such as "pockets of liquidity," which are areas where there is a high volume of trades but relatively little price movement.
It is important to note that volume profile should be used in conjunction with other technical analysis tools and should not be relied upon in isolation. It is also important to consider the overall context and market conditions when interpreting volume profile data.
Key Difference with TradingView's PVP indicator - TradingView's PVP intraday period does not align with standard intraday timeframes as it is determined by # of bars. This script provides volume profiles that aligns with higher timeframe periods.
Enjoy~!
Magnifying Glass (LTF Candles) by SiddWolf█ OVERVIEW
This indicator displays The Lower TimeFrame Candles in current chart, Like Zooming in on the Candle to see it's Lower TimeFrame Structure. It plots intrabar OHLC data inside a Label along with the volume structure of LTF candle in an eloquent format.
█ QUICK GUIDE
Just apply it to the chart, Hover the mouse on the Label and ta-da you have a Lower Timeframe OHLC candles on your screen. Move the indicator to the top and shrink it all the way up, because all the useful data is inside the label.
Inside the label: The OHLC ltf candles are pretty straightforward. Volume strength of ltf candles is shown at bottom and Volume Profile on the left. Read the Details below for more information.
In the settings, you will find the option to change the UI and can play around with Lower TimeFrame Settings.
█ DETAILS
First of all, I would like to thank the @TradingView team for providing the function to get access to the lower timeframe data. It is because of them that this magical indicator came into existence.
Magnifying Glass indicator displays a Candle's Lower TimeFrame data in Higher timeframe chart. It displays the LTF candles inside a label. It also shows the Volume structure of the lower timeframe candles. Range percentage shown at the bottom is the percentage change between high and low of the current timeframe candle. LTF candle's timeframe is also shown at the bottom on the label.
This indicator is gonna be most useful to the price action traders, which is like every profitable trader.
How this indicator works:
I didn't find any better way to display ltf candles other than labels. Labels are not build for such a complex behaviour, it's a workaround to display this important information.
It gets the lower timeframe information of the candle and uses emojis to display information. The area that is shown, is the range of the current timeframe candle. Range is a difference between high and low of the candle. Range percentage is also shown at the bottom in the label.
I've divided the range area into 20 parts because there are limitation to display data in the labels. Then the code checks out, in what area does the ltf candle body or wick lies, then displays the information using emojis.
The code uses matrix elements for each block and relies heavily on string manipulation. But what I've found most difficult, is managing to fit everything correctly and beautifully so that the view doesn't break.
Volume Structure:
Strength of the Lower TimeFrame Candles is shown at the bottom inside the label. The Higher Volume is shown with the dark shade color and Lower Volume is shown with the light shade. The volume of candles are also ranked, with 1 being the highest volume, so you can see which candle have the maximum to minimum volume. This is pretty important to make a price action analysis of the lower timeframe candles.
Inside the label on the left side you will see the volume profile. As the volume on the bottom shows the strength of each ltf candles, Volume profile on the left shows strength in a particular zone. The Darker the color, the higher the volume in the zone. The Highest volume on the left represents Point of Control (Volume Profile POC) of the candle.
Lower TimeFrame Settings:
There is a limitation for the lowest timeframe you can show for a chart, because there is only so much data you can fit inside a label. A label can show upto 20 blocks of emojis (candle blocks) per row. Magnifying Glass utilizes this behaviour of labels. 16 blocks are used to display ltf candles, 1 for volume profile and two for Open and Close Highlighter.
So for any chart timeframe, ltf candles can be 16th part of htf candle. So 4 hours chart can show as low as 15 minutes of ltf data. I didn't provide the open settings for changing the lower timeframe, as it would give errors in a lot of ways. You can change the timeframe for each chart time from the settings provided.
Limitations:
Like I mentioned earlier, this indicator is a workaround to display ltf candles inside a label. This indicator does not work well on smaller screens. So if you are not able to see the label, zoom out on your browser a bit. Move the indicator to either top or bottom of all indicators and shrink it's space because all details are inside the label.
█ How I use MAGNIFYING GLASS:
This indicator provides you an edge, on top of your existing trading strategy. How you use Magnifying Glass is entirely dependent on your strategy.
I use this indicator to get a broad picture, before getting into a trade. For example I see a Doji or Engulfing or any other famous candlestick pattern on important levels, I hover the mouse on Magnifying Glass, to look for the price action the ltf candles have been through, to make that pattern. I also use it with my "Wick Pressure" indicator, to check price action at wick zones. Whenever I see price touching important supply and demand zones, I check last few candles to read chart like a beautiful price action story.
Also volume is pretty important too. This is what makes Magnifying Glass even better than actual lower timeframe candles. The increasing volume along with up/down trend price shows upward/downward momentum. The sudden burst (peak) in the volume suggests volume climax.
Volume profile on the left can be interpreted as the strength/weakness zones inside a candle. The low volume in a price zone suggests weakness and High volume suggests strength. The Highest volume on the left act as POC for that candle.
Before making any trade, I read the structure of last three or four candles to get the complete price action picture.
█ Conclusion
Magnifying Glass is a well crafted indicator that can be used to track lower timeframe price action. This indicator gives you an edge with the Multi Timeframe Analysis, which I believe is the most important aspect of profitable trading.
~ @SiddWolf
Naked Intrabar POCThis indicator with an unfortunate and very non PC sounding name approximates (!) the intrabar point of control (POC) either from time or volume at price.
Due to pine limitations, bin size and the sample lower time frame selection will have at least some effect on the accuracy of the approximation. The trade off is between accuracy and historical availability, however bar replay can be used to view prior historical states beyond what is visible from the current real time bar.
In order for all intrabar POC circles to be visible, you will need to manually set the visual order of the indicator by bringing it to the front.
Since the POC represents a price point around which the highest market participation occurred, the exposed global variable intrabar_poc may (or may not) be interesting as an alternative to ohlc based source input.
Realtime FootprintThe purpose of this script is to gain a better understanding of the order flow by the footprint. To that end, i have added unusual features in addition to the standard features.
I use "Real Time 5D Profile by LucF" main engine to create basic footprint(profile type) and added some popular features and my favorites.
This script can only be used in realtime, because tradingview doesn't provide historical Bid/Ask date.
Bid/Ask date used this script are up/down ticks.
This script can only be used by time based chart (1m, 5m , 60m and daily etc)
This script use many labels and these are limited max 500, so you can't display many bars.
If you want to display foot print bars longer, turn off the unused sub-display function.
Default setting is footprint is 25 labels, IB count is 1, COT high and Ratio high is 1, COT low and Ratio low is 1 and Delta Box Ratio Volume is 1 , total 29.
plus UA , IB stripes , ladder fading mark use several labels.
///////// General Setting ///////////
Resets on Volume / Range bar
: If you want to use simple time based Resets on, please set Total Volume is 0.
Your timeframe is always the first condition. So if you set Total Volume is 1000, both conditions(Volume >= 1000 and your timeframe start next bar) must be met. (that is, new footprint bar doesn't start at when total volume = exactly 1000).
Ticks per row and Maximum row of Bar
: 1 is minimum size(tick). "Maximum row of Bar" decide the number of rows used in one footprint. 1 row is created from 1 label, so you need to reduce this number to display many footprints (Max label is 500).
Volume Filter and For Calculation and Display
: "Volume Filter" decide minimum size of using volume for this script.
"For Calculation and Display" is used to convert volume to an integer.
This script only use integer to make profile look better (I contained Bid number and Ask number in one row( one label) to saving labels. This require to make no difference in width by the number of digits and this script corresponds integers from 0 to 3 digits).
ex) Symbol average volume size is from 0.0001 to 0.001. You decide only use Volume >= 0.0005 by "Volume Filter".
Next, you convert volume to integer, by setting "For Calculation and Display" is 1000 (0.0005 * 1000 = 5).
If 0.00052 → 5.2 → 5, 0.00058 → 5.8 → 6 (Decimal numbers are rounded off)
This integer is used to all calculation in this script.
//////// Main Display ///////
Footprint, Total, Row Delta, Diagonal Delta and Profile
: "Footprint" display Ask and Bid per row. "Total" display Ask + Bid per row.
"Row Delta" display Ask - Bid per row. "Diagonal Delta" display Ask(row N) - Bid(row N -1) per row.
Profile display Total Volume(Ask + Bid) per row by using Block. Profile Block coloring are decided by Row Delta value(default: positive Row Delta (Ask > Bid) is greenish colors and negative Row Delta (Ask < Bid) is reddish colors.)
Volume per Profile Block, Row Imbalance Ratio and Delta Bull/Bear/Neutral Colors
: "Volume per Profile Block" decide one block contain how many total volume.
ex) When you set 20, Total volume 70 display 3 block.
The maximum number of blocks that can be used per low is 20.
So if you set 20, Total volume 400 is 20 blocks. total volume 800 is 20 blocks too.
"Row Imbalance Ratio" decide block coloring. The row imbalance is that the difference between Ask and Bid (row delta) is large.
default is x3, x2 and x1. The larger the difference, the brighter the color.
ex) Ask 30 Bid 10 is light green. Ask 20 Bid 10 is green. Ask 11 Bid 10 is dark green.
Ask 0 Bid 1 is light red. Ask 1 Bid 2 is red. ask 30 Bid 59 is dark green.
Ask 10 Bid 10 is neutral color(gray)
profile coloring is reflected same row's other elements(Ask, Bid, Total and Delta) too.
It's because one label can only use one text color.
/////// Sub Display ///////
Delta, total and Commitment of Traders
: "Delta" is total Ask - total Bid in one footprint bar. Total is total Ask + total Bid in one footprint bar.
"Commitment of traders" is variation of "Delta". COT High is reset to 0 when current highest is touched. COT Low is opposite.
Basic concept of Delta is to compare price with Delta. Ordinary, when price move up, delta is positive. Price move down is negative delta.
This is because market orders move price and market orders are counted by Delta (although this description is not exactly correct).
But, sometimes prices do not move even though many market orders are putting pressure on price , or conversely, price move strongly without many market orders.
This is key point. Big player absorb market orders by iceberg order(Subdivide large orders and pretend to be small limit orders.
Small limit orders look weak in the order book, but they are added each time you fill, so they are more powerful than they look.), so price don't move.
On the other hand, when the price is moving easily, smart players may be aiming to attract and counterattack to a better price for them.
It's more of a sport than science, and there's always no right response. Pay attention to the relationship between price, volume and delta.
ex) If COT Low is large negative value, it means many sell market orders is coming, but iceberg order is absorbing their attack at limit order.
you should not do buy entry, only this clue. but this is one of the hints.
"Delta, Box Ratio and Total texts is contained same label and its color are "Delta" coloring. Positive Delta is Delta Bull color(green),Negative Delta is Delta Bear Color
and Delta = 0 is Neutral Color(gray). When Delta direction and price direction are opposite is Delta Divergence Color(yellow).
I didn't add the cumulative volume delta because I prefer to display the CVD line on the price chart rather than the number.
Box Ratio , Box Ratio Divisor and Heavy Box Ratio Ratio
: This is not ordinary footprint features, but I like this concept so I added.
Box Ratio by Richard W. Arms is simple but useful tool. calculation is "total volume (one bar) divided by Bar range (highest - lowest)."
When Bull and bear are fighting fiercely this number become large, and then important price move happen.
I made average BR from something like 5 SMA and if current BR exceeds average BR x (Heavy Box Ratio Ratio), BR box mark will be filled.
Box Ratio Divisor is used to good looking display(BR multiplied by Box Ratio Divisor is rounded off and displayed as an integer)
Diagonal Imbalance Count , D IB Mark and D IB Stripes
: Diagonal Imbalance is defined by "Diagonal Imbalance Ratio".
ex) You set 2. When Ask(row N) 30 Bid(row N -1)10, it's 30 > 10*2, so positive Diagonal Imbalance.
When Ask(row N) 4 Bid(row N -1)9, it's 4*2 < 9, so negative Diagonal Imbalance.
This calculation does not use equals to avoid Ask(row N) 0 Bid(row N -1)0 became Diagonal Imbalance.
Ask(row N) 0 Bid(row N -1)0, it's 0 = 0*2, not Diagonal Imbalance. Ask(row N) 10 Bid(row N -1)5, it's 10 = 5*2, not Diagonal Imbalance.
"D IB Mark" emphasize Ask or Bid number which is dominant side(Winner of Diagonal Imbalance calculation), by under line.
"Diagonal Imbalance Count" compare Ask side D IB Mark to Bid side D IB Mark in one footprint.
Coloring depend on which is more aggressive side (it has many IB Mark) and When Aggressive direction and price direction are opposite is Delta Divergence Color(yellow).
"D IB Stripes" is a function that further emphasizes with an arrow Mark, when a DIB mark is added on the same side for three consecutive row. Three consecutive arrow is added at third row.
Unfinished Auction, Ratio Bounds and Ladder fading Mark
: "Unfinished Auction" emphasize highest or lowest row which has both Ask and Bid, by Delta Divergence Color(yellow) XXXXXX mark.
Unfinished Auction sometimes has magnet effect, price may touch and breakout at UA side in the future.
This concept is famous as profit taking target than entry decision.
But, I'm interested in the case that Big player make fake breakout at UA side and trapped retail traders, and then do reversal with retail traders stop-loss hunt.
Anyway, it's not stand alone signal.
"Ratio Bounds" gauge decrease of pressure at extreme price. Ratio Bounds High is number which second highest ask is divided by highest ask.
Ratio Bounds Low is number which second lowest bid is divided by lowest bid. The larger the number, the less momentum the price has.
ex)first footprint bar has Ratio Bounds Low 2, second footprint bar has RBL 4, third footprint bar has RBL 20.
This indicates that the bear's power is gradually diminishing.
"Ladder fading mark" emphasizes the decrease of the value in 3 consecutive row at extreme price. I added two type Marks.
Ask/Bid type(triangle Mark) is Ask/Bid values are decreasing of three consecutive row at extreme price.
Row Imbalance type(Diamond Mark) are row Imbalance values are decreasing of three consecutive row at extreme price.
ex)Third lowest Bid 40, second lowest Bid 10 and lowest Bid 5 have triangle up Mark. That is bear's power is gradually diminishing.
(This Mark only check Bid value at lowest price and Ask value at highest price).
Third highest row delta + 60, second highest row delta + 5, highest delta - 20 have diamond Mark. That is Bull's power is gradually diminishing.
Sub display use Delta colors at bottom of Sub display section.
////// Candle & POC /////////
candle and POC
: Ordinary, "POC" Point of Control is row of largest total volume, but this script'POC is volume weighted average.
This is because the regular POC was visually displayed by the profile ,and I was influenced LucF's ideas.
POC coloring is decided in relation to the previous POC. When current POC is higher than previous POC, color is UP Bar Color(green).
In the opposite case, Down Bar color is used.
POC Divergence Color is used when Current POC is up but current bar close is lower than open (Down price Bar),or in the opposite case.
POC coloring has option also highlight background by Delta Divergence Color(yellow). but bg color is displayed at your time frame current price bar not current footprint bar.
The basic explanation is over.
I add some image to promote understanding basic ideas.
High Timeframe POCBecause the big Bitcoin crash I have been looking a lot at high timeframe metrics. I never spent much time learning POC so I decided to create a little script for determining these on higher timeframes.
Currently included: Monthly, 3 months and 6 months.
/* DEFINITION */
Point Of Control (= POC) is a price level at which the heaviest volumes were traded.
Value Area High/Low (=VAH/VAL) is a range of prices where the majority of trading volume took place. Naturally, Value Area High being the top price level and Value Area Low being the lowest. POC always is between the two.
/* HOW TO TRADE WITH THIS INDICATOR */
The basis for POC is determining bias on whichever timeframe you choose.
1. Identify a POC on the timeframe of your choosing.
/* If you choose a "low" timeframe (monthly here) then make sure to look at the higher timeframes to see how it is playing against a higher timeframe POC.
2. When the price is moving away from the POC (either to the upside or downside) this will confirm or invalidate the trade.
3. You can now enter the trade on bias or wait for a retest of the same POC.
/* EXAMPLE TRADES /*
Here is a screenshot of some of the trades that are possible solely using the POC and some common sense.
s3.tradingview.com
Baseline-C [ID: AC-P]The "AC-P" version of jiehonglim's NNFX Baseline script is my personal customized version of the NNFX Baseline concept as part of the NNFX Algorithm stack/structure for 1D Trend Trading for Forex. Everget's JMA implementation is used for the baseline smoothing method, with optional ATR bands at 1.0x and 1.5x from the baseline.
NNFX = No Nonsense Forex
Baseline = Component of the NNFX Algorithm that consists of a single moving average
Baseline ---> Meant to be used in conjunction with ATR/C1/C2/Vol Indicator/Exit Indicator as per NNFX Algorithm setup/structure. C1 is 1st Confirmation Indicator, C2 is 2nd Confirmation Indicator.
JMA (Jurik Moving Average) is used for the baseline and slow baseline.
A slow baseline option is included, but disabled by default.
The faint orange/purple lines are 1.0x/1.5x ATR from the Baseline, and are what I use as potential TP/SL targets or to evaluate when to stay out of a trade (chop/missed entry/exit/other/ATR breach), depending on the trade setup (in conjunction with C1/C2/Vol Indicator/Exit Indicator)
This script is heavily based upon jiehonglim's NNFX Baseline script for signaling, barcoloring, and ATR.
SSL Channel option included but disabled by default (Erwinbeckers SSL component)
POC (Point of Control) from Volume Profile is included/enabled by default for both the current timeframe and 12HR timeframe
03.freeman's InfoPanel Divergence Indicator was used a reference to replace the current/previous ATR information infopanel/info draw from jiehonglim's script. I'm not sure whether I like the previous way ATR info was displayed vs how I have it currently, but it's something that is completely optional:
Specifically: I am tuning this baseline/indicator for 1D trading as part of the NNFX system, for Forex.
DO NOT USE THIS INDICATOR WITHOUT PROPER TUNING/ADJUSTMENT for your timeframe and asset class.
Note about lack of alerts:
Alerts for baseline crosses (and other crosses) have been purposefully omitted for this version upon initial publication. While getting alerts for baseline crosses under certain conditions/filtered conditions that eliminate low-importance signals and crossover whipsaw would be great, it's something I'm still looking into.
SPECIFICALLY: There are entry, exit, take profit, and continuation signal components in relation to the Baseline to the rest of the NNFX Algorithm stack (ATR/C1/C2/Vol Indicator/Exit Indicator), including but limited to the "1 candle rule" and the "7 candle rule" as per NNFX.
Implementing alerts that are significant that also factor in these rules while reducing alert spam/false signals would be ideal, but it's also the HTF/Daily chart - visually, entry/exit/continuation signal alignment is easy to spot when trading 1D - alerts may be redundant/a pursuit in diminishing returns (for now).
//-------------------------------------------------------------------
// Acknowledgements/Reference:
// jiehonglim, NNFX Baseline Script - Moving Averages
//
// Fractured, Many Moving Averages
//
// everget, Jurik Moving Average/JMA
//
// 03.freeman, InfoPanel Divergence Indicator
//
// Ggqmna Volume stops
//
// Libertus RSI Divs
//
// ChrisMoody, CM_Price-Action-Bars-Price Patterns That Work
//
// Erwinbeckers SSL Channel
//
Biller Project//@version=6
indicator("Hoon Fib Project", shorttitle ="Hoon Fib", overlay = true, max_bars_back = 5000)
// -----------------------------------------------------------------------------
// ~~ Tooltips & Constants
// -----------------------------------------------------------------------------
var string t1 = "Period:\nNumber of bars used to detect swing highs and swing lows."
var string t2 = "Projection Level:\nFibonacci ratio used to calculate the projected future targets."
var string t2_b = "Trend Projection Ratio:\nThe secondary Fibonacci ratio for extensions."
var string t15 = "Fib Volume Profile:\nEnable volume profile drawn between the last swing high and low."
var string t20 = "Fib Volume Delta:\nEnable volume delta profile between Fibonacci price bands."
// -----------------------------------------------------------------------------
// ~~ Inputs
// -----------------------------------------------------------------------------
// Group: General Settings
prd = input.int(100, "Period", group = "Fib Settings", tooltip = t1)
lvl = input.float(0.618, "Projection Level", options = , group = "Fib Settings", tooltip = t2)
trendFibbRatio = input.float(1.272, "Trend Projection Ratio", step = 0.001, group = "Fib Settings", tooltip = t2_b)
// Group: Fib Levels Style
fibLvl1 = input.float(0.236, "Level 1", group = "Fib Levels Style", inline = "f1")
fibColor236 = input.color(#f23645, "", group = "Fib Levels Style", inline = "f1")
fibLvl2 = input.float(0.382, "Level 2", group = "Fib Levels Style", inline = "f2")
fibColor382 = input.color(#81c784, "", group = "Fib Levels Style", inline = "f2")
fibLvl3 = input.float(0.500, "Level 3", group = "Fib Levels Style", inline = "f3")
fibColor500 = input.color(#4caf50, "", group = "Fib Levels Style", inline = "f3")
fibLvl4 = input.float(0.618, "Level 4", group = "Fib Levels Style", inline = "f4")
fibColor618 = input.color(#089981, "", group = "Fib Levels Style", inline = "f4")
fibLvl5 = input.float(0.786, "Level 5", group = "Fib Levels Style", inline = "f5")
fibColor786 = input.color(#64b5f6, "", group = "Fib Levels Style", inline = "f5")
// Golden Pocket - FIXED COLOR HERE
showGP = input.bool(true, "Show Golden Pocket (0.65)", group = "Fib Levels Style")
gpColor = input.color(color.new(#FFD700, 85), "GP Color", group = "Fib Levels Style")
fibLineWidth = input.int(2, "Fib Line Width", minval = 1, maxval = 5, group = "Fib Levels Style")
showlab = input.bool(true, "Show Labels", group = "Fib Levels Style", inline = "fiblab")
fibLabelColor = input.color(color.white, "Text Color", group = "Fib Levels Style", inline = "fiblab")
fibLabelSizeStr = input.string("Small", "Size", options = , group = "Fib Levels Style", inline = "fiblab")
fibLabelSize = switch fibLabelSizeStr
"Tiny" => size.tiny
"Small" => size.small
"Large" => size.large
=> size.normal
// Group: Swing High/Low Lines
loLineColor = input.color(color.new(color.green, 0), "Low Line", group = "Swing High/Low Lines Style", inline = "hi")
hiLineColor = input.color(color.new(color.red, 0), "High Line", group = "Swing High/Low Lines Style", inline = "hi")
hiloLineWidth = input.int(2, "Width", 1, 5, group = "Swing High/Low Lines Style", inline = "hi")
// Group: Fib Volume Profile
showFibProfile = input.bool(true, "Show Volume Profile", group = "Fib Volume Profile", tooltip = t15)
rows = input.int(24, "Rows", 2, 100, group = "Fib Volume Profile")
flipOrder = input.bool(false, "Flip Bull/Bear", group = "Fib Volume Profile")
bull_color = input.color(color.new(color.teal, 30), "Bull Vol", group = "Fib Volume Profile", inline = "volColor")
bear_color = input.color(color.new(color.orange, 30), "Bear Vol", group = "Fib Volume Profile", inline = "volColor")
showVolText = input.bool(true, "Show Values", group = "Fib Volume Profile", inline = "vtxt")
// Point of Control (POC)
showPOC = input.bool(true, "Show POC Line", group = "Fib Volume Profile")
pocColor = input.color(color.yellow, "POC Color", group = "Fib Volume Profile")
// Group: Fib Volume Delta
showFibDelta = input.bool(false, "Show Volume Delta", group = "Fib Volume Delta Profile", tooltip = t20)
deltaMaxWidth = input.int(30, "Max Width (Bars)", minval = 5, maxval = 200, group = "Fib Volume Delta Profile")
deltaBullColor = input.color(color.new(color.lime, 80), "Bull Delta", group = "Fib Volume Delta Profile", inline = "dc")
deltaBearColor = input.color(color.new(color.red, 80), "Bear Delta", group = "Fib Volume Delta Profile", inline = "dc")
// Group: Projection Style
projLineBullColor = input.color(color.new(color.green, 0), "Proj Bull", group = "Projection Style", inline = "plc")
projLineBearColor = input.color(color.new(color.red, 0), "Proj Bear", group = "Projection Style", inline = "plc")
projLineWidth = input.int(2, "Width", 1, 5, group = "Projection Style", inline = "plc")
projLineStyleStr = input.string("Arrow Right", "Style", options = , group = "Projection Style")
projLineStyle = switch projLineStyleStr
"Solid" => line.style_solid
"Dashed" => line.style_dashed
"Dotted" => line.style_dotted
=> line.style_arrow_right
// Group: Projection Box
projBoxBgOn = input.bool(true, "Box Bg", group = "Projection Box Style", inline = "pbg")
projBoxBgColor = input.color(color.new(color.blue, 80), "", group = "Projection Box Style", inline = "pbg")
projBoxTextColor = input.color(color.white, "Text", group = "Projection Box Style", inline = "pbg")
// NEW: Biller's Info Box Inputs
showBillerBox = input.bool(true, "Show Biller's Insight", group = "Biller's Insight")
billerPos = input.string("Top Right", "Position", options = , group = "Biller's Insight")
// -----------------------------------------------------------------------------
// ~~ Calculations
// -----------------------------------------------------------------------------
// Swing detection
hi = ta.highest(high, prd)
lo = ta.lowest(low, prd)
isHi = high == hi
isLo = low == lo
HB = ta.barssince(isHi)
LB = ta.barssince(isLo)
hiPrice = ta.valuewhen(isHi, high, 0)
loPrice = ta.valuewhen(isLo, low, 0)
hiBar = ta.valuewhen(isHi, bar_index, 0)
loBar = ta.valuewhen(isLo, bar_index, 0)
// Persistent Drawing Objects
var line hiLine = line.new(na, na, na, na, color = hiLineColor, width = hiloLineWidth)
var line loLine = line.new(na, na, na, na, color = loLineColor, width = hiloLineWidth)
var array fibbLines = array.new_line()
var array fibbLabels = array.new_label()
var array gpBoxes = array.new_box()
var array forecastLines = array.new_line()
var array areas = array.new_box()
var array perc = array.new_label()
var array fibProfileBoxes = array.new_box()
var array pocLines = array.new_line()
var array fibDeltaBoxes = array.new_box()
// Helper Functions
fibbFunc(v, last, h, l) => last ? h - (h - l) * v : l + (h - l) * v
cleaner(a, idx) =>
if idx >= 0 and idx < array.size(a)
el = array.get(a, idx)
if not na(el)
el.delete()
array.remove(a, idx)
// -----------------------------------------------------------------------------
// ~~ Logic Execution
// -----------------------------------------------------------------------------
if not na(HB) and not na(LB) and not na(hiPrice) and not na(loPrice)
// 1. Update Swing High/Low Lines
line.set_xy1(hiLine, hiBar, hiPrice)
line.set_xy2(hiLine, bar_index, hiPrice)
line.set_color(hiLine, hiLineColor)
line.set_xy1(loLine, loBar, loPrice)
line.set_xy2(loLine, bar_index, loPrice)
line.set_color(loLine, loLineColor)
// 2. Clear old drawings
while array.size(fibbLines) > 0
cleaner(fibbLines, 0)
while array.size(fibbLabels) > 0
cleaner(fibbLabels, 0)
while array.size(gpBoxes) > 0
cleaner(gpBoxes, 0)
while array.size(forecastLines) > 0
cleaner(forecastLines, 0)
while array.size(areas) > 0
cleaner(areas, 0)
while array.size(perc) > 0
cleaner(perc, 0)
// 3. Draw Fib Retracements
lvls = array.from(fibLvl1, fibLvl2, fibLvl3, fibLvl4, fibLvl5)
cols = array.from(fibColor236, fibColor382, fibColor500, fibColor618, fibColor786)
baseOffset = HB > LB ? LB : HB
xFibStart = bar_index - baseOffset
// Golden Pocket Logic
if showGP
gp618 = fibbFunc(0.618, HB < LB, hiPrice, loPrice)
gp65 = fibbFunc(0.65, HB < LB, hiPrice, loPrice)
gpBox = box.new(xFibStart, gp618, bar_index + 5, gp65, bgcolor = gpColor, border_color = na)
array.push(gpBoxes, gpBox)
for in lvls
f = fibbFunc(e, HB < LB, hiPrice, loPrice)
ln = line.new(xFibStart, f, bar_index, f, color = cols.get(i), width = fibLineWidth)
array.push(fibbLines, ln)
if showlab
lbl = label.new(bar_index + 1, f, str.tostring(e * 100, "#.##") + "%",
textcolor = fibLabelColor, style = label.style_label_left, size = fibLabelSize, color = cols.get(i))
array.push(fibbLabels, lbl)
// 4. Draw Projections
bars = math.abs(HB - LB)
fibb = fibbFunc(lvl, LB > HB, hiPrice, loPrice)
fibb2 = LB < HB ? fibbFunc(lvl, true, fibb, loPrice) : fibbFunc(lvl, false, hiPrice, fibb)
trendfibb = LB > HB ? fibbFunc(trendFibbRatio, true, hiPrice, loPrice) : fibbFunc(trendFibbRatio, false, hiPrice, loPrice)
forecast = array.from(HB < LB ? hiPrice : loPrice, fibb, fibb2, trendfibb)
segment = math.min(bars, math.floor(500.0 / 4.0))
future = bar_index
for i = 0 to forecast.size() - 2
y1 = forecast.get(i)
y2 = forecast.get(i + 1)
x2 = math.min(future + segment, bar_index + 500)
// Draw Projection Line
lnForecast = line.new(future, y1, x2, y2, color = y1 < y2 ? projLineBullColor : projLineBearColor, width = projLineWidth, style = projLineStyle)
array.push(forecastLines, lnForecast)
// Draw Target Box
midBoxLeft = x2 - math.round((future - x2) / 4.0)
txtLevel = i == forecast.size() - 2 ? str.tostring(trendFibbRatio, "#.###") : str.tostring(lvl * 100, "#.##")
boxHeight = math.abs(y1 - y2) / 10.0
bx = box.new(midBoxLeft, y2 + boxHeight, x2 + math.round((future - x2) / 4.0), y2 - boxHeight,
bgcolor = projBoxBgOn ? projBoxBgColor : na, border_width = 1,
text = txtLevel, text_color = projBoxTextColor)
array.push(areas, bx)
future += segment
// 5. Volume Profile Logic
if showFibProfile and hiBar != loBar
while array.size(fibProfileBoxes) > 0
cleaner(fibProfileBoxes, 0)
while array.size(pocLines) > 0
cleaner(pocLines, 0)
top = math.max(hiPrice, loPrice)
bottom = math.min(hiPrice, loPrice)
step = (top - bottom) / rows
// Define bins
volUp = array.new_float(rows, 0.0)
volDn = array.new_float(rows, 0.0)
startBar = math.min(hiBar, loBar)
endBar = math.max(hiBar, loBar)
for bi = startBar to endBar
offset = bar_index - bi
if offset < 4999
p = hlc3
v = nz(volume )
isBull = close > open
// Find correct bin
if p >= bottom and p <= top
idx = int((p - bottom) / step)
idx := math.min(idx, rows - 1)
if isBull
array.set(volUp, idx, array.get(volUp, idx) + v)
else
array.set(volDn, idx, array.get(volDn, idx) + v)
// Draw Volume Boxes and Calc POC
maxTot = 0.0
maxTotIdx = 0 // Track index of max volume
for i = 0 to rows - 1
tot = array.get(volUp, i) + array.get(volDn, i)
if tot > maxTot
maxTot := tot
maxTotIdx := i
span = endBar - startBar + 1
blendTxtColor = color.new(color.white, 30)
minWidthForText = 2
if maxTot > 0
for r = 0 to rows - 1
upV = array.get(volUp, r)
dnV = array.get(volDn, r)
if upV + dnV > 0
normUp = int((upV / maxTot) * span)
normDn = int((dnV / maxTot) * span)
yTop = bottom + step * (r + 1)
yBot = bottom + step * r
// Draw Bull Box
if normUp > 0
txtBull = (showVolText and normUp > minWidthForText) ? str.tostring(upV, format.volume) : ""
bxBull = box.new(startBar + (flipOrder ? 0 : normDn), yTop, startBar + (flipOrder ? normUp : normUp + normDn), yBot,
bgcolor = bull_color, border_style = line.style_dotted, border_color = color.new(bull_color, 50),
text = txtBull, text_color = blendTxtColor, text_size = size.tiny, text_halign = text.align_center, text_valign = text.align_center)
array.push(fibProfileBoxes, bxBull)
// Draw Bear Box
if normDn > 0
txtBear = (showVolText and normDn > minWidthForText) ? str.tostring(dnV, format.volume) : ""
bxBear = box.new(startBar + (flipOrder ? normUp : 0), yTop, startBar + (flipOrder ? normUp + normDn : normDn), yBot,
bgcolor = bear_color, border_style = line.style_dotted, border_color = color.new(bear_color, 50),
text = txtBear, text_color = blendTxtColor, text_size = size.tiny, text_halign = text.align_center, text_valign = text.align_center)
array.push(fibProfileBoxes, bxBear)
// Draw POC Line
if showPOC
pocY = bottom + step * (maxTotIdx + 0.5) // Midpoint of max bin
pocLn = line.new(startBar, pocY, bar_index + 10, pocY, color = pocColor, width = 2, style = line.style_solid)
array.push(pocLines, pocLn)
// 6. Volume Delta Logic
if showFibDelta and hiBar != loBar
while array.size(fibDeltaBoxes) > 0
cleaner(fibDeltaBoxes, 0)
fibPrices = array.new_float()
array.push(fibPrices, hiPrice)
array.push(fibPrices, loPrice)
for e in lvls
array.push(fibPrices, fibbFunc(e, HB < LB, hiPrice, loPrice))
array.sort(fibPrices)
bandsCount = array.size(fibPrices) - 1
bandBull = array.new_float(bandsCount, 0.0)
bandBear = array.new_float(bandsCount, 0.0)
startBar = math.min(hiBar, loBar)
endBar = math.max(hiBar, loBar)
for bi = startBar to endBar
offset = bar_index - bi
if offset < 4999
p = hlc3
v = nz(volume )
isBull = close > open
for b = 0 to bandsCount - 1
bLow = array.get(fibPrices, b)
bHigh = array.get(fibPrices, b + 1)
if p >= bLow and p < bHigh
if isBull
array.set(bandBull, b, array.get(bandBull, b) + v)
else
array.set(bandBear, b, array.get(bandBear, b) + v)
break
maxAbsDelta = 0.0
for b = 0 to bandsCount - 1
maxAbsDelta := math.max(maxAbsDelta, math.abs(array.get(bandBull, b) - array.get(bandBear, b)))
if maxAbsDelta > 0
for b = 0 to bandsCount - 1
delta = array.get(bandBull, b) - array.get(bandBear, b)
if delta != 0
widthBars = int((math.abs(delta) / maxAbsDelta) * deltaMaxWidth)
widthBars := math.max(widthBars, 1)
col = delta >= 0 ? deltaBullColor : deltaBearColor
dBox = box.new(startBar - widthBars, array.get(fibPrices, b+1), startBar, array.get(fibPrices, b),
bgcolor = col, border_color = na,
text = "Δ " + str.tostring(delta, format.volume), text_color = color.new(color.white, 20), text_size = size.small)
array.push(fibDeltaBoxes, dBox)
// -----------------------------------------------------------------------------
// ~~ Biller's Info Box Logic
// -----------------------------------------------------------------------------
var table infoTable = table.new(
position = billerPos == "Top Right" ? position.top_right : billerPos == "Bottom Right" ? position.bottom_right : billerPos == "Bottom Left" ? position.bottom_left : position.top_left,
columns = 1,
rows = 3,
bgcolor = color.new(color.black, 40),
border_width = 1,
border_color = color.new(color.white, 80)
)
if showBillerBox and barstate.islast
// Determine Bias: If the last Pivot was a LOW (LB < HB), market is technically trending UP from that low.
bool isBullish = LB < HB
string biasTitle = isBullish ? "🐂 BULLISH BIAS" : "🐻 BEARISH BIAS"
color biasColor = isBullish ? color.new(color.green, 20) : color.new(color.red, 20)
string biasMsg = isBullish ? "Don't look for shorts, Biller!" : "Don't look for longs, Biller!"
// Array of Quotes
string quotes = array.from(
"Biller, you're not gonna pass ur eval looking at the chart all day.",
"Fuck it, go in. I believe in u.",
"Trust JD's Signals.",
"Scared money makes no money, Biller.",
"Evaluation is just a mindset.",
"JD is watching... don't fumble.",
"Are you really gonna take that trade?",
"Wait for the setup, Biller.",
"Don't be a liquidity exit, Biller."
)
int quoteIdx = bar_index % array.size(quotes)
string currentQuote = array.get(quotes, quoteIdx)
// Row 1: Bias Header
table.cell(infoTable, 0, 0, biasTitle, bgcolor = biasColor, text_color = color.white, text_size = size.normal)
// Row 2: Instruction
table.cell(infoTable, 0, 1, biasMsg, text_color = color.white, text_size = size.small)
// Row 3: Motivation/Quote
table.cell(infoTable, 0, 2, "\"" + currentQuote + "\"", text_color = color.yellow, text_size = size.small, text_halign = text.align_center)
AnchoredVolume ProDescription
AnchoredVolume builds a real-time volume profile that distributes volume across price levels, identifying the Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL). These levels represent where 70% of volume occurred and act as powerful support/resistance zones.
TradeHook.tech - MTMGBS AnchoredVolume ProDescription
AnchoredVolume builds a real-time volume profile that distributes volume across price levels, identifying the Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL). These levels represent where 70% of volume occurred and act as powerful support/resistance zones.
Harmonic Liquidity Waves [JOAT]Harmonic Liquidity Waves
Overview
Harmonic Liquidity Waves is an open-source oscillator indicator that combines multiple volume-based analysis techniques into a unified liquidity flow framework. It integrates VWAP calculations, Chaikin Money Flow (CMF), Money Flow Index (MFI), and Klinger Volume Oscillator (KVO) with custom harmonic wave calculations to provide a comprehensive view of volume dynamics and money flow.
What This Indicator Does
The indicator calculates and displays:
Liquidity Flow - Volume-weighted price movement accumulated over a lookback period
Harmonic Wave - Multi-depth smoothed oscillator derived from liquidity flow
Chaikin Money Flow (CMF) - Classic accumulation/distribution indicator
Money Flow Index (MFI) - Volume-weighted RSI showing buying/selling pressure
Klinger Volume Oscillator (KVO) - Trend-volume relationship indicator
Wave Interference - Combined constructive/destructive wave patterns
Volume Profile POC - Point of Control from simplified volume distribution
How It Works
The core liquidity flow calculation tracks volume-weighted price changes:
calculateLiquidityFlow(series float vol, series float price, simple int period) =>
float priceChange = ta.change(price)
float volumeFlow = vol * math.sign(priceChange)
// Accumulated over period using buffer array
float avgFlow = flowSum / period
avgFlow
The harmonic oscillator applies multi-depth smoothing:
harmonicOscillator(series float flow, simple int depth, simple int period) =>
float harmonic = 0.0
for i = 1 to depth
float wave = ta.ema(flow, period * i) / i
harmonic += wave
harmonic / depth
CMF measures accumulation/distribution using the Money Flow Multiplier:
float mfm = ((close - low) - (high - close)) / (high - low)
float mfv = mfm * vol
float cmf = ta.sum(mfv, period) / ta.sum(vol, period) * 100
Signal Generation
Liquidity shift signals occur when:
Bullish Shift: Smoothed wave crosses above signal line
Bearish Shift: Smoothed wave crosses below signal line
Strong signals require volume indicator confirmation:
Strong Bull: Bullish shift + CMF > 0 + MFI > 50 + KVO > 0
Strong Bear: Bearish shift + CMF < 0 + MFI < 50 + KVO < 0
Divergence detection compares price pivots with liquidity wave pivots to identify potential reversals.
Dashboard Panel (Bottom-Right)
Wave Strength - Normalized wave magnitude
Volume Pressure - Current volume vs average percentage
Flow Direction - BUYING or SELLING based on wave sign
Histogram - Wave minus signal line value
CMF - Chaikin Money Flow reading
MFI - Money Flow Index value (0-100)
KVO - Klinger oscillator value
Vol Confluence - Combined volume indicator score
Signal - Current actionable status
Visual Elements
Liquidity Wave - Main oscillator line
Wave Signal - Smoothed signal line for crossover detection
Wave Histogram - Difference between wave and signal
Wave Interference - Area plot showing combined wave patterns
CMF/KVO/MFI Lines - Individual volume indicator plots
Divergence Labels - BULL DIV / BEAR DIV markers
Shift Markers - Triangles for basic shifts, labels for strong shifts
Input Parameters
Wave Period (default: 21) - Base period for liquidity calculations
Volume Weight (default: 1.5) - Multiplier for volume emphasis
Harmonic Depth (default: 3) - Number of smoothing layers
Smoothing (default: 3) - Final wave smoothing period
Suggested Use Cases
Identify accumulation/distribution phases using CMF and wave direction
Confirm momentum with MFI overbought/oversold readings
Watch for divergences between price and liquidity flow
Use strong signals when multiple volume indicators align
Timeframe Recommendations
Best on 15m to Daily charts. Volume-based indicators require sufficient trading activity for meaningful readings.
Limitations
Volume data quality varies by exchange and instrument
Divergence detection uses pivot-based lookback and may lag
Volume Profile POC is simplified and not a full profile analysis
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Ultimate Institutional Order Flow Pro [Pointalgo]Ultimate Institutional Order Flow (UIOF Pro)
Ultimate Institutional Order Flow (UIOF Pro) is a multi-component market analysis indicator designed to study order flow behavior, liquidity interaction, volatility structure, and session-based participation.
It integrates several commonly used market structure and order-flow concepts into a single visual framework.
This script focuses on context and alignment, not on isolated signals.
Core Objective
The indicator aims to identify areas where price, volume, liquidity, and structure appear aligned in the same direction.
It does this by combining:
VWAP behavior
Volume participation
Cumulative delta analysis
Liquidity pool interaction
Order blocks and fair value gaps
Market structure shifts
Session and higher-timeframe confirmation
VWAP & Volatility Framework
Calculates VWAP using session, weekly, or monthly anchors.
Optional VWAP standard-deviation bands visualize price dispersion.
VWAP slope and price position are used to classify directional bias.
VWAP is treated as a dynamic equilibrium reference rather than a signal.
Cumulative Volume Delta (CVD)
Estimates buy and sell pressure based on intrabar price movement.
Tracks cumulative delta and a smoothed delta average.
Uses delta change normalization to highlight abnormal activity.
Detects potential delta divergences when price and participation differ.
CVD is used to assess whether participation supports or contradicts price movement.
Liquidity Zones & Sweeps
Identifies recent swing highs and lows as potential liquidity pools.
Tracks buy-side and sell-side liquidity areas.
Flags conditions where price sweeps liquidity beyond recent extremes.
Liquidity interaction is treated as context, not prediction.
Order Blocks
1. Detects potential bullish and bearish order blocks using:
Candle structure
Volatility thresholds
Volume confirmation
2.Highlights areas where strong participation followed opposing price movement.
Order blocks are visual reference zones and do not imply guaranteed reactions.
Fair Value Gaps (FVG)
Identifies imbalance zones where price moves without overlapping structure.
Filters gaps using ATR-based size conditions.
Visual shading is used to highlight imbalance areas.
These zones may represent inefficient price movement requiring further interaction.
Volume Profile & Point of Control (POC)
Builds a simplified volume profile over a configurable lookback window.
Determines the price level with the highest traded volume (POC).
POC is used as a reference for acceptance or rejection behavior.
Market Structure
Evaluates recent highs and lows to identify structure breaks.
Classifies directional structure as bullish, bearish, or neutral.
Structure is used as a directional filter rather than a trigger.
Multi-Timeframe Confirmation
Optional higher-timeframe confirmation aligns lower-timeframe behavior with broader context.
Prevents analysis from relying on isolated timeframe conditions.
Session Filtering
1. Allows analysis to be limited to specific trading sessions.
2. Helps reduce signals during low-participation periods.
3. Session logic affects signal eligibility, not calculations.
Signal Logic
Signals are generated only when multiple independent conditions align, including:
Liquidity interaction
Order block presence
VWAP bias
Delta confirmation
Structure alignment
Volume participation
Optional higher-timeframe confirmation
Active trading session
Strong continuation conditions are also highlighted when price, volume, and participation remain aligned.
Signals represent confluence states, not trade instructions.
Dashboard Summary
A real-time dashboard summarizes:
VWAP bias and slope
CVD strength and direction
Delta behavior
Market structure state
Higher-timeframe context
Volume conditions
Liquidity pool counts
Session activity
This provides a high-level snapshot of market conditions without manual calculation.
Alerts are available for:
Institutional alignment conditions
Strong continuation pressure
Liquidity sweeps
Delta divergences
Alerts are informational and reflect internal indicator states only.
Usage Notes
Designed for analytical interpretation and market study.
Best used alongside price action and risk management methods.
Performance depends on instrument liquidity and volume quality.
All visual elements can be individually enabled or disabled.
Disclaimer
This script is provided for educational and analytical purposes only.
It does not provide financial, investment, or trading advice.
All outputs should be independently verified before making trading decisions.
🟡 GOLD 4H HUD v12 — Time-Safe Nuclear Edition🟡 GOLD 4H HUD v12 — Time-Safe Nuclear Edition
A full–scale Smart Money Concepts (SMC) analytics engine designed exclusively for XAUUSD on the 4-Hour timeframe.
This script combines market structure, liquidity, displacement, order blocks, imbalance, volume profile, SMT divergence, and institutional behavior modeling into a single unified HUD.
Built with a time-safe architecture, all structural elements (OB/FVG/Sweep) are stored by timestamp to minimize repainting and preserve event integrity.
📌 Core Features (12 Modules + Full HUD)
1 — Market Structure Engine
Automatically detects:
HH / HL / LH / LL
BOS (Break of Structure)
MSS (Market Structure Shift)
CHOCH (Change of Character)
Real swing pivots & trend state
2 — Sweep Engine (Liquidity Grab Detection)
Identifies institutional liquidity grabs:
Break + reclaim of highs/lows
ATR-filtered invalidation
Displacement-backed sweeps
3 — Time-Safe FVG Engine
Detects Bullish/Bearish Fair Value Gaps
ATR-tolerant FVG logic
Automatic right-extension
Auto-delete when filled or invalid
4 — Time-Safe Order Block Engine
Demand & Supply OB detection
Strength classification (Weak vs Strong)
FVG-overlap confirmation
Timestamp-locked (non-repainting)
5 — Volume Profile Engine (HVN / LVN / POC)
Real-time micro-profile:
High Volume Node (HVN)
Low Volume Node (LVN)
Point of Control (POC)
6 — SMT Engine (Gold vs DXY Divergence)
Smart Money Divergence built-in:
Bullish SMT
Bearish SMT
Directional confirmation with zero lag
7 — Displacement Engine
Measures institutional impulse:
Body-based impulse detection
Multi-leg continuation signals
FVG continuation moves
Generates displacement score
8 — Premium / Discount Model
Auto-classifies price into:
Discount (Buy zone)
Premium (Sell zone)
9 — SMC Trend Engine (Score-Based)
Combines 10+ factors:
Structure
FVG
OB power
Displacement
POC positioning
SMT conditions
Outputs:
BULL / BEAR / RANGE
Full scoring system
10 — Institutional Imbalance Model (IMB Engine)
Combines:
PD zones
Sweep direction
Displacement
SMT
OB strength
CHOCH/MSS
A complete institutional bias filter.
11 — Entry Engine (Signal Fusion Model)
Entry conditions fuse:
Sweep
CHOCH
Displacement
OB strength
FVG alignment
SMT confirmation
Also outputs:
Suggested SL/TP
Entry score
12 — Trendline Engine
Auto-draws:
HL → HL bullish trendlines
LH → LH bearish trendlines
+ Full Nuclear HUD
Displays:
Market structure
Trend direction
SMT / CHOCH / MSS
FVG / OB zones
HVN / LVN / POC
Liquidity strength
Entry model
Liquidity Magnet direction
SL/TP map
A complete institutional dashboard in one place.
⚠ Usage Requirement
This script is designed ONLY for the 4H timeframe.
✨ Summary
GOLD 4H HUD v12 — Time-Safe Nuclear Edition
is not just an indicator.
It is a full institutional-grade SMC analysis system, built specifically for Gold.
If you trade XAUUSD on the 4H timeframe —
this is your complete market intelligence HUD
Bassi's Consolidation Breakout — ULTIMATE PRO + VPOverview
Bassi’s Consolidation Breakout — ULTIMATE PRO + VP is a professional-grade breakout detection system that combines price structure, volume confirmation, volatility compression, and custom volume profile logic.
The indicator automatically detects compressed consolidation zones, confirms breakouts with multi-layer filters, and plots full trade setups including:
Entry level
Stop-loss
TP1, TP2, TP3 (R:R based)
Trend filters + MTF EMA
Retest validation
Volume Profile confirmation (POC / VAH / VAL)
This is one of the most complete breakout frameworks for TradingView.
🔍 Core Concept
The script detects tight consolidation boxes based on:
Price range (% compression)
Lookback period
Minimum required bars
Breakout above/below the box
Once the consolidation ends, breakout signals fire only if they pass all filters.
This focuses your trading on high-probability breakouts only.
🔥 Key Features
1️⃣ Automated Consolidation Box Detection
Draws consolidation boxes dynamically
Identifies tight range compression
Supports advanced range logic for high accuracy
2️⃣ Smart Breakout + Retest Engine
Breakouts and breakdowns require:
Structure break
Minimum breakout expansion (0.15%)
Volume confirmation
Trend (200 EMA) confirmation
Optional retest validation
Optional Volume Profile filter
Each valid breakout prints a signal + full trade setup.
3️⃣ Custom Volume Profile Engine
Fast and lightweight custom-built VP that calculates:
POC (Point of Control)
VAH (Value Area High)
VAL (Value Area Low)
These levels can optionally be used to filter weak breakouts.
4️⃣ Multi-Timeframe Trend Filter
Uses 200 EMA from any selected higher timeframe
Helps avoid counter-trend fakeouts
Fully optional
5️⃣ Automatic Trade Setup Projection
Each breakout generates:
Stop-loss (ATR × multiplier)
TP1 (R:R)
TP2 (R:R)
TP3 (optional)
Clean signal labels
Only keeps the last 2 signals to maintain clarity
6️⃣ Alerts Included
Alerts fire instantly when a valid breakout occurs:
“Bassi LONG + VP”
“Bassi SHORT + VP”
Alerts include ticker + entry price.
📘 Usage Guide & Trading Rules
✔ Recommended Trading Steps
1. Wait for a confirmed consolidation box
Box must be narrow
Must meet minimum bar requirement
2. Wait for a confirmed breakout signal
Signal requires:
Breakout above/below box
Volume confirmation
Trend & MTF confirmation if enabled
Optional retest
Optional VP filter (close outside VAH/VAL)
3. Follow the projected setup
The script prints:
Entry
SL
TP1 / TP2 / TP3
Target lines extend automatically.
📖 How to Use the Script (Trading Rules)
1️⃣ Long Entry Rules
Enter Long when:
Price breaks above trend confirmation level
Momentum signal turns bullish
Candle closes above trigger line
Volatility filter is satisfied
Exit Long:
TP1/TP2/TP3 levels
Reversal signal
Trailing stop hit
2️⃣ Short Entry Rules
Enter Short when:
Price breaks below trend confirmation level
Momentum signal turns bearish
Candle closes below trigger line
Volatility filter is satisfied
Exit Short:
TP1/TP2/TP3 levels
Trend reversal
Trailing stop hit
✔ Recommended Markets
Crypto
Forex
Indices
Futures
Stocks
Works on all timeframes from 1-minute to daily.
✔ Best Practice
Avoid taking signals against HTF trend
Prefer signals that break away from VAH/VAL
Use TP1 to secure partial profits
Move SL to breakeven after TP1 if desired
Always follow personal risk management
👤 Author
Created by: Mahdi Bassi
Professional trader & systems designer
Focused on structural, volume-based and volatility-based strategies.
⚠️ Disclaimer
This script is for educational purposes only.
No indicator can guarantee profits.
Always use proper risk management and trade responsibly.
Low Volatility Profiles [BigBeluga]🔵 OVERVIEW
Low Volatility Profiles is a market compression and breakout-anticipation tool that identifies phases of low volatility using ADX and then builds a real-time volume profile inside the detected range.
This helps traders spot accumulation/distribution zones and prepare for explosive moves when volatility expands.
When volatility is low ➜ price coils ➜ volume organizes ➜ breakouts become highly actionable.
This tool visualizes that process with dynamic range boxes + volume bins + PoC extension.
🔵 CONCEPTS
Low-Volatility Detection — Uses ADX threshold & cross logic to define volatility contraction regimes.
Range Construction — Draws a price box that expands with highs/lows during the compression phase.
Micro Volume Profile — Builds a volume histogram inside the range using bins (micro volume nodes).
Delta Calculation — Tracks positive vs negative volume to gauge buyer/seller pressure within range.
Point of Control (PoC) — Highlights the price level with max traded volume inside the range.
PoC Extension — Optionally extends PoC into future bars to show potential reaction zone after breakout.
Breakout Validation — Ends the profile zone when price breaks above or below the modeled range.
Noise Removal — Automatically removes invalid or small ranges to prevent chart clutter.
This tool turns consolidation into actionable structure by exposing where smart money accumulates before trending moves.
🔵 FEATURES
ADX-Driven Range Detection — Identify when market transitions into low-volatility compression.
Configurable ADX Threshold — Set sensitivity for contraction zones.
Cross-Type Option — Detect low volatility via cross under / crossover logic.
Dynamic Range Box — Expands live with price as contraction unfolds.
Micro Volume Profile (Bins) — Distributes volume across bins inside range for micro POC mapping.
Volume Delta Visualization — Shows imbalance inside consolidation (accumulation vs distribution).
Real-Time PoC Highlight — Instantly shows most traded price inside the compression.
PoC Extension Mode — Extend PoC forward to project reaction levels post-breakout.
Clean Auto-Reset Logic — Removes boxes if range invalid or breakout occurs too fast.
Optional Filled Boxes — Heatmap-style profile visualization inside range body.
ADX Line + Threshold Plot — Visual assistance for volatility state monitoring.
🔵 HOW TO USE
Identify Accumulation Zones — When price enters low-volatility ADX condition and profile builds.
Watch the PoC — PoC acts as battle zone; move above/below can signal initiator strength.
Breakout Strategy — Trade break above/below the range after compression.
Mean Reversion Inside Range — Fade edges while price remains inside compression box.
Combine With Trend Tools — Use trend confirmation (MA/EMA/Flow indicators) after breakout.
Use Delta Clues — Positive delta tilt suggests accumulation; negative suggests distribution.
Monitor Range Size — Longer build + high PoC volume = stronger potential breakout energy.
🔵 CONCLUSION
Low Volatility Profiles isolates accumulation phases and maps volume concentration before volatility expansion.
By combining ADX compression, micro volume distribution, and PoC tracing, traders gain an edge in anticipating powerful breakout cycles and institutional positioning.
Trade the quiet moment before the storm — where smart money prepares the move, and the real opportunity emerges.
PheeTrades - Value Area Levels (VAH / VAL / POC Visualizer)This script helps traders quickly visualize key Volume Profile–style levels such as Value Area High (VAH), Value Area Low (VAL), and Point of Control (POC) using recent price and volume data.
While TradingView’s built-in Volume Profile tool is great for manual analysis, this indicator automatically calculates and plots approximate value zones directly on your chart — ideal for traders who want to identify high-probability support and resistance areas without drawing a fixed range every time.
Features:
Calculates short-term VAH, VAL, and POC based on a user-defined lookback period.
Plots color-coded levels for quick visual reference.
Helps identify “fair value” zones where most trading activity occurred.
Useful for detecting breakout or mean-reversion opportunities around value extremes.
How to use:
Apply the script to any chart and set your preferred lookback period.
VAH (red line): potential upper resistance or overbought zone.
VAL (green line): potential lower support or accumulation zone.
POC (orange line): price level with the highest traded activity — often a magnet for price.
Note:
This is a simplified Value Area model meant for educational and analytical use. It does not replace TradingView’s official Volume Profile or broker-level volume distribution data.
Smooth Cloud + ZigZag VPOC CORE v6📌 Description
The Smooth Cloud + ZigZag VPOC indicator is designed to help traders visualize market structure and potential confluence zones.
Smooth Cloud: Built from smoothed moving averages (EMA, RMA, or HMA), this cloud highlights the underlying short-term trend by shading bullish and bearish phases.
Pivots (ZigZag style): Marks confirmed swing highs and lows, helping to identify support/resistance and breakout areas without repainting.
VPOC (Volume Point of Control): Plots the price level with the highest traded volume, either from a rolling lookback or anchored to a custom date. This often acts as a magnet or reaction level.
ATR Bands: Optional dynamic bands based on volatility to frame potential extension zones.
Signals & Alerts: Generates long/short labels when price breaks pivot levels in line with trend filters, with optional confluence from HTF trend, VPOC, and ATR.
This tool combines trend context, structure, and volume confluence in a single view to support decision-making.
✅ Notes
This script is intended for technical analysis and educational use only.
It does not provide financial advice or guaranteed outcomes.
Signals are purely analytical and should be combined with independent risk management.
Phantom Trend IndicatorOverview
The Phantom Trend Indicator (PTI) is a streamlined tool for identifying trend direction and strength. It blends zigzag-based trend detection with a volume profile to display a histogram showing price distance from the Point of Control (POC). Six distinct colors highlight trend states, with background highlights for extreme price zones. Ideal for stocks, forex, crypto, and futures across any timeframe.
Features:
Trend Detection: Uses zigzag fractals to identify uptrends and downtrends.
Histogram Colors: Six colors for trend strength (low, high, extreme for up/down trends) or neutral (gray).
Dynamic Levels: Plots POC, Value Area Low (VAL), and High (VAH) via volume profile.
Background Colors: Highlights overbought (above VAH) or oversold (below VAL) zones.
Alerts: Signals new trends.
How It Works:
Trends: Zigzag fractals define trend ranges, with price position setting histogram colors (low, high, or extreme).
Histogram: Shows price deviation from POC.
Background: Colors extreme zones outside VAL/VAH.
This indicator builds on traditional trend detectors and volume profiles by integrating them into a single, cohesive tool. Unlike standard momentum indicators that rely on moving averages, PTI uses zigzag fractals for more responsive trend identification, reducing lag in volatile markets. Compared to basic volume profile scripts, it adds trend-based color coding and background alerts for extremes, providing clearer visual cues for overbought/oversold conditions. The six distinct colors indicate trend strength, and customizable thresholds allow fine-tuning for different assets and timeframes, enhancing adaptability. Traders benefit from combined momentum and liquidity insights, helping spot reversals or continuations more reliably—making PTI a valuable, standalone addition for both novice and experienced users.
Settings
Trend Detector: Toggle alerts, adjust zigzag sensitivity, and set thresholds for low-to-high and extreme color transitions.
Dynamic Levels: Configure volume profile period, multiplier, accuracy, value area percent, and ATR-based channel width.
Visuals: Customize POC, VAL, VAH, and area fill colors.
Read Histogram: Uptrend colors show early, strong, or overextended moves; downtrend colors indicate early, weakening, or oversold conditions; gray for consolidation.
Background: Monitor for overbought/oversold color-coded signals.
Tune: Adjust zigzag or period settings for your timeframe/asset.
Tips
Shorten period for intraday, extend for swing trading.
Pair with other indicators for confirmation.
Notes:
Requires sufficient chart data for volume profile.
Test settings for low-volatility assets.
For informational use only, not financial advice. Test thoroughly, and happy trading!
Simple TPODisplays price distribution over time using Time Price Opportunities (TPO). Shows Point of Control (POC), Value Area High/Low (VAH/VAL) levels to identify key support/resistance zones and fair value areas. Includes customizable timeframes and price breakout alerts.






















